Software applications having one or more specific functionalities may be exposed to other applications, often over a network (e.g., the Internet) by way of a service interface. When such a service (and/or an interface of the service) is exposed/available over the World Wide Web (referred to herein as the WWW or the web), then the service may be known as a web service. Interactions between such services may be orchestrated so that the services (e.g., web services) may be used as components of a larger, often more complex, software application, which may be referred to as web services-based process(es) (WSPs). More generally, such compositions of services into a logical flow for a resulting configuration of services to behave as a cohesive application may be referred to as a service-oriented architecture (SOA).
Modeling languages exist which provide for, among other functionalities, a graphical, intuitive representation of WSP or other SOA application(s). For example, the Unified Modeling Language (UML) may be used as such a modeling language that provides a visual illustration of interactions between component services. Further, state-based models exist which may be used to specify possible states of the WSP or other SOA applications. Still further, languages exist, such as, for example, the Business Process Execution Language (BPEL), that are designed to provide executable or semi-executable forms of the WSP or other SOA application, e.g., for execution using an orchestration engine or other technique.
In practice, these various languages and techniques have different strengths and weaknesses which, on the whole, may make it difficult for a given user to design and implement a WSP or other SOA application. For example, a user who is comfortable with the diagrammatic, interaction-based representation of a graphical modeling language may find it difficult to design or use either a more formal state-based model, or an executable form of the graphical model. In particular, for example, when a number of possible users may implement a given WSP, it may be difficult to determine whether a particular one of the users (or a particular class of the users) will be able to execute a corresponding instance of the WSP in a desired manner. Consequently, a full deployment, adaptation, and use of WSPs and other SOA applications may be hindered.